home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / glibc-1.09 / glibc-1 / glibc-1.09.1 / sysdeps / standalone / m68k / m68020 / mvme136 / _exit.c next >
Encoding:
C/C++ Source or Header  |  1994-08-28  |  1.7 KB  |  50 lines

  1. /* Copyright (C) 1994 Free Software Foundation, Inc.
  2.    Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
  3.      On-Line Applications Research Corporation.
  4.  
  5. This file is part of the GNU C Library.
  6.  
  7. The GNU C Library is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU Library General Public License as
  9. published by the Free Software Foundation; either version 2 of the
  10. License, or (at your option) any later version.
  11.  
  12. The GNU C Library is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15. Library General Public License for more details.
  16.  
  17. You should have received a copy of the GNU Library General Public
  18. License along with the GNU C Library; see the file COPYING.LIB.  If
  19. not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  20. Cambridge, MA 02139, USA.  */
  21.  
  22. #include <ansidecl.h>
  23. #include <unistd.h>
  24. #include <stdlib.h>
  25. #include "__m68020.h"
  26.  
  27. /* Return control to 135Bug */
  28.  
  29. void 
  30. DEFUN_VOID(__exit_trap)
  31. {
  32.   set_vbr( 0 );                     /* restore 135Bug vectors */
  33.   asm volatile( "trap   #15"  );    /* trap to 135Bug */
  34.   asm volatile( ".short 0x63" );    /* return to 135Bug (.RETURN) */
  35.   asm volatile( "jmp    main" );    /* restart program */
  36. }
  37.  
  38. /* The function `_exit' should take a status argument and simply
  39.    terminate program execution, using the low-order 8 bits of the
  40.    given integer as status.  */
  41.  
  42. __NORETURN void
  43. DEFUN(_exit, (status), int status)
  44. {
  45.   /* status is ignored */
  46.  
  47.   M68Kvec[ 45 ] = __exit_trap;   /* install exit_trap handler */
  48.   asm volatile( "trap #13" );  /* insures SUPV mode */
  49. }
  50.